C言語 メモ
| ■ | void型ポインタ(汎用ポインタ) | ||||||
| メモリへアクセスする型がわからないポインタを void型ポインタと云う。 汎用ポインタとも呼ばれる。 (メモリへアクセスする型が不明or未定のメモリ番地を管理するための変数を void型ポインタと云う。) void * ptr と記述される。 ★ 汎用ポインタ(void *)のメリット ・ あらゆる型を出入力に使うことができる ・ ポインタの参照先の型が見えないようにすることでメモリアクセスを制限する <使用例> |
|||||||
|
|||||||
|
|||||||
|
|||||||
| ・ 構造体の中で 単なるメンバー変数として使用する例 | |||||||
//4 pVoid mere member.c
#include <stdio.h>
#include <stdlib.h>
//個人情報管理用の構造体作成
typedef struct
{
char name[32]; // 登録氏名
unsigned short years; // 年齢
}ACCOUNT;
typedef enum
{
INIT,
RUN,
ERROR,
}APP_STATES; //アプリケーションの状態
typedef struct
{
APP_STATES state; ////アプリケーションの状態に係るメンバー
void * ptr; //汎用ポインタのメンバー
}APP_DATA;
APP_DATA appData;
int main()
{
appData.ptr = (void *)malloc(sizeof(ACCOUNT));
if(appData.ptr == NULL) return -1;
else
{
appData.state = RUN;
printf("appData.ptr = 0x%p", appData.ptr);
}
return 0;
}
|
|||||||
| <実行結果> | |||||||
| appData.ptr = 0x00000000007F6D50 | |||||||